接下來來介紹網路爬蟲吧,也是Linebot最廣為使用的應用之一,可以輸入行程式碼,讓程式自動抓取網站資訊。
首先先從安裝套件做起
pip install requests
以下實作一個範例
import requests
url = "https://ani.gamer.com.tw/"
response = requests.get(url)
print(response.text)
#output
<!DOCTYPE html>
<html lang="zh-tw">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>巴哈姆特電玩資訊站 - 系統異常回報</title>
終端機輸出的就是requests從網站上抓取下來的資訊,但....
可以發現,本應該出現正常番劇的資訊,但突然報錯,這是因為我們被網站檢測到我們是爬蟲程式,為了避免以上狀況發生,我們可以加上幾行程式碼,來避免網站偵測爬蟲。
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
}
response = requests.get(url, headers=headers)
#output
.
.
.
<a href='animeRef.php?sn=112676' class='theme-list-main' data-gtm-category='首頁' data-gtm-event='點擊主題推薦卡片'>
<div class='theme-img-block' style='pointer-events:none;'>
<div class='theme-img-bg loading'></div>
<img class='theme-img lazyload' src='data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' data-src='https://p2.bahamut.com.tw/B/ACG/c/76/0000114476.JPG' alt='後空翻少年!!'>
<div class='show-view-number'>
<i class='pic-eye-style material-icons'>remove_red_eye</i>
<p>37.1萬</p>
</div>
.
.
.
這時可以發現,網站輸出變得正常了,因為我們多了一個身分,偽裝成瀏覽器去瀏覽網站,這樣就不會有問題了。
User-Agent的取得方式,打開瀏覽器點開任一網站,F12->Network->隨便點一個檔案
這時右邊的Headers的就會出現一堆東西,最下面就可以看到User-Agent了
這邊要跟各位提醒,爬蟲不要短時間同時爬同一個網站太多次,可能會造成網站崩潰、或者是IP被封鎖。
當然還有許多東西可以玩,例如帶cookie、向網站發送POST訊號等等,就請有興趣的各位去鑽研啦~~~